package desgin.pattern.behavior.state;

/**
 * 
 * @Type Main ●　　状态和行为<br/>
 * 
 *       　　所谓对象的状态，通常指的就是对象实例的属性的值；而行为指的就是对象的功能，再具体点说，行为大多可以对应到方法上。
 *       　　状态模式的功能就是分离状态的行为，通过维护状态的变化，来调用不同状态对应的不同功能。也就是说，状态和行为是相关联的，它们的关系可以描述为：
 *       状态决定行为。 　<br/>
 *       　由于状态是在运行期被改变的，因此行为也会在运行期根据状态的改变而改变。
 * 
 * 
 * 
 * @Desc ● 　　环境和状态处理对象 <br/>
 *       　　在状态模式中，环境(Context)是持有状态的对象，但是环境(Context)自身并不处理跟状态相关的行为，
 *       而是把处理状态的功能委托给了状态对应的状态处理类来处理。
 *       　　在具体的状态处理类中经常需要获取环境(Context)自身的数据，甚至在必要的时候会回调环境(Context)的方法，因此，通常将环境(
 *       Context)自身当作一个参数传递给具体的状态处理类。
 *       　　客户端一般只和环境(Context)交互。客户端可以用状态对象来配置一个环境(Context)，一旦配置完毕，就不再需要和状态对象打交道了
 *       。客户端通常不负责运行期间状态的维护，也不负责决定后续到底使用哪一个具体的状态处理对象。
 * @author Administrator
 * @date 2015年3月13日
 * @Version V1.0
 */
public class Main {

    public static void main(String[] args) {
        State state = new StartState();
        Context context = new Context(state);
        context.handle("Tv");

        state = new StopState();
        context = new Context(state);
        context.handle("Tv");
    }
}
